// Version7Controller.h: interface for the Version7Controller class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_VERSION7CONTROLLER_H__6C00C176_5B2B_4CAE_A5FB_B5AD6D72C1D1__INCLUDED_)
#define AFX_VERSION7CONTROLLER_H__6C00C176_5B2B_4CAE_A5FB_B5AD6D72C1D1__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "VersionController.h"

namespace VersionControl
{
	class Version7Controller : public VersionController  
	{
	public:
		Version7Controller();
		virtual ~Version7Controller();
		
	public:
		virtual VolumeGenerator& CurVolumeGenerator();
		virtual SupportHangerGenerator& CurSupportHangerGenerator();
		virtual PartGenerator& CurPartGenerator();
		virtual JointGenerator& CurJointGenerator();
		virtual PersistentSortVisitor& CurPersistentVisitor();
		
		virtual void project(Project* pPrj);
	private:
		VolumeGenerator m_VolumeGenerator;
		SupportHangerGenerator m_SHGenerator;
		PartGenerator m_PartGenerator;
		JointGenerator m_JointGenerator;
		PersistentSortVisitor m_PSVisitor;
	};
}
#endif // !defined(AFX_VERSION7CONTROLLER_H__6C00C176_5B2B_4CAE_A5FB_B5AD6D72C1D1__INCLUDED_)
